#include "test.hpp"

//写端

int main()
{
    //创建命名管道
    umask(000); //设置权限掩码
    int m = mkfifo(FNAME,0666); //创建命名管道
    if(m == -1)
    {
        cerr << errno << " : " << strerror(errno) <<endl;
        return EOF;
    }
    //打开命名管道
    int fd = open(FNAME,O_WRONLY); //以只写的方式打开
    if(fd == -1)
    {
        cerr << errno << " : " << strerror(errno) <<endl;
        return EOF;
    }
    
    char str[NUM];
    //写入内容
    while(true)
    {
        str[0] = 0;

        // char* s = fgets(str,sizeof(str),stdin);
        // assert(s);
        // (void*)s;

        // str[strlen(str)-1] = 0;

        // if(strcasecmp(str,"quit") == 0) break;

        // write(fd,str,sizeof(str));

        //str[0] = getch();  //不需要回车自动截取字符 - 输入端不显示输入的字符

        system("stty raw"); //输入端显示输入的字符
        str[0] = getchar();
        system("stty -raw");

        if(strcasecmp(str,"`") == 0) break; //输入 · 退出
        write(fd,str,sizeof(char));
    }

    //关闭命名管道
    close(fd);

    //删除命名管道
    unlink(FNAME);

    return 0;
}